관련 동영상: https://youtu.be/LPmhUiZIubg
동네에 항상 대기 손님이 있는 치킨집이 있다. 대기 손님의 치킨 요리 시간을 줄이고자 자동 주문 시스템을 제작하였다. 시스템 코딩을 확인하고 적절한 예외처리 구문을 삽입하라.
조건:
ValueError
로 처리SoldOutError
를 발생시키고 프로그램 종료사용할 개념:
class SoldOutError(Exception):
pass
chicken = 10 # 남은 치킨 수
waiting = 1 # 대기번호 시작
while True:
try:
print(f"[남은 치킨 : {chicken}]")
order = int(input("치킨 몇 마리 주문하시겠습니까? "))
if order < 1:
raise ValueError
if order > chicken:
print("재료가 부족합니다.")
else:
print(f"[대기번호 {waiting}] {order} 마리 주문이 완료되었습니다.")
waiting += 1
chicken -= order
if chicken == 0:
raise SoldOutError
except ValueError:
print("잘못된 값을 입력하였습니다.")
except SoldOutError:
print("재고가 소진되어 더 이상 주문을 받지 않습니다.")
break
예외 처리가 적용된 프로그램을 분석하고, 추가적으로 응용할 수 있는 시나리오를 작성하라.
응용 예제:
출력 예시:
[남은 책 : 3]
몇 권을 대여하시겠습니까? 2
[대여 완료] 2권이 대여되었습니다.
[남은 책 : 1]
몇 권을 대여하시겠습니까? 2
재고가 부족합니다.
[남은 책 : 1]
몇 권을 대여하시겠습니까? 1
[대여 완료] 1권이 대여되었습니다.
모든 책이 대여되었습니다.
도서 대여 시스템 코드:
class NoBooksAvailable(Exception):
pass
books = 3 # 남은 책 수량
while True:
try:
print(f"[남은 책 : {books}]")
rent = int(input("몇 권을 대여하시겠습니까? "))
if rent < 1:
raise ValueError
if rent > books:
print("재고가 부족합니다.")
else:
print(f"[대여 완료] {rent}권이 대여되었습니다.")
books -= rent
if books == 0:
raise NoBooksAvailable
except ValueError:
print("잘못된 값을 입력하였습니다.")
except NoBooksAvailable:
print("모든 책이 대여되었습니다.")
break